/**
 * @author 20111227 by hzx
 * @class ChargeRecordForm
 * @extends Ext.form.FormPanel
 * @description 充值窗口form
 */
ChargeRecordForm = Ext.extend(Ext.form.FormPanel, {
			cur_amount : "_cur_amount",//用户当前的余额
			cur_price :  "_cur_price", //用户当前的单价
			cur_smscount : "_cur_smscount",//用户当前的短信量
			cur_parentId : "_cur_parentId",//上级用户ID
			record : "_record",
			
			// 构造方法
			constructor : function(_cfg) {
					if (_cfg == null) {
						_cfg = {};
					}
					Ext.apply(this, _cfg);
//					Ext.Msg.show({
//					title : "系统提示",
//					msg :this.cur_amount + ":" + this.cur_price + ":" + this.cur_smscount+":"+this.record,
//					buttons : Ext.Msg.OK,
//					icon : Ext.Msg.INFO
//					});
				// 调用父类的构造方法
				ChargeRecordForm.superclass.constructor.call(this, {
							layout : "form", // from布局
							labelWidth : 160, // 宽度
							baseCls : "x-plain", // 统一背景色
							bodyStyle : "padding:8px;", // 样式
							defaults : {
								anchor : "95%" // 锚点布局
							},
							items : [{
										xtype : "label",
										fieldLabel : "当前可用金额(元)",
										align:"right",
										text : this.record.get("uis.balance") +"元"
									},{
										xtype : "label",
										fieldLabel : "当前短信单价(元)",
										text : this.record.get("uis.price")+"元"
									},{
										xtype : "label",
										fieldLabel : "当前可用短信(条)[参考值]",
										text : this.record.get("uis.smscount")+"条"
									},{
										xtype : "textfield",
										fieldLabel : "充值金额(元)",
										allowBlank : false, // 不允许为空
										name : "cr.amount",
										length : 5,
										validator : function(){
//											return /^\d{1,8}?$/gi.test(this.getValue());
											var csmscount = 0;
											var str = "";
											if(/^\d{1,7}?$/gi.test(this.getValue()) && 
													/^\d{1,7}(\.\d{1,3})?$/gi.test(this.getValue(this.ownerCt.items.itemAt(4).getValue()))){
												csmscount = parseInt( parseFloat(this.getValue()) / parseFloat(this.ownerCt.items.itemAt(4).getValue()) );
												//str = "已有(" + this.ownerCt.items.itemAt(6).getValue() + ") + 现在(" + csmscount + ") = " +( csmscount + parseInt(this.ownerCt.items.itemAt(6).getValue()) ) + "条" ;
												str = parseInt(csmscount) + "条" ;
											//	Ext.Msg.alert(this.ownerCt.items.itemAt(6).getValue());
												this.ownerCt.items.itemAt(5).setValue(str);
												this.ownerCt.items.itemAt(7).setValue(csmscount);
												return true;
											}
											this.ownerCt.items.itemAt(5).setValue(str);
											this.ownerCt.items.itemAt(7).setValue(csmscount);
											return false;
										}
									}, {
										xtype : "textfield",
										style : "margin-top:5px;",
										fieldLabel : "短信单价(元)",
										name : "cr.price",
										allowBlank : false, // 不允许为空
										length : 5,
										validator : function(){
											var csmscount = 0;
											var str = "";
											if(/^\d{1,7}?$/gi.test(this.ownerCt.items.itemAt(3).getValue()) && 
													/^\d{1,7}(\.\d{1,3})?$/gi.test(this.getValue())){
												csmscount = parseInt( parseFloat(this.ownerCt.items.itemAt(3).getValue()) / parseFloat(this.getValue()) );
												//str = "已有(" + this.ownerCt.items.itemAt(6).getValue() + ") + 现在(" + csmscount + ") = " +( csmscount + parseInt(this.ownerCt.items.itemAt(6).getValue()) ) + "条" ;
												str = parseInt(csmscount) + "条" ;
//												Ext.Msg.alert(this.ownerCt.items.itemAt(6).getValue());
												this.ownerCt.items.itemAt(5).setValue(str);
												this.ownerCt.items.itemAt(7).setValue(csmscount);
												//this.ownerCt.items.itemAt(9).setValue(csmscount);
												return true;
											} 
											this.ownerCt.items.itemAt(5).setValue(str);
											this.ownerCt.items.itemAt(7).setValue(csmscount);
											//this.ownerCt.items.itemAt(9).setValue(csmscount);
											return false;
										}
									}, {
										xtype : "textfield",
										style : "margin-top:5px;",
										fieldLabel : "参考充值条数",
										readOnly : true
									},{
										xtype : "hidden",
										name : "c_smscount",
										value : this.record.get("uis.smscount")
									},{
										xtype : "hidden",
										value : 0
									},{
										xtype : "hidden",
										name : "cr.userId",
										value : this.record.get("uis.userId")
									},{
										xtype : "hidden",
										name : "cr.parentId",
										value : this.cur_parentId
									},{
										xtype : "textfield",
										allowBlank : false, // 不允许为空
										fieldLabel : "本次充值条数",
										name : "cr.smscount",
										validator : function(){
											return /^-?\d{1,9}?$/gi.test(this.getValue());
										}
									},{
											xtype : "textarea",
											fieldLabel : "充值备注",
											name : "cr.remark"
									}]
						})
			},

			/**
			 * 用户角色表单提交方法
			 * 
			 * @param {}
			 *            _url 提交的url
			 */
			mySubmit : function(_url) {
				this.getForm().submit({
							url : _url,
							waitTitle : "数据传输",
							waitMsg : "数据传输中,请稍等...",
							// 成功回调方法
							success : this.onSuccess,
							// 失败回调方法
							failure : this.onFailure,
							// 作用域
							scope : this

						})
			},

			/**
			 * 请求成功的回调方法
			 * 
			 * @param {}
			 *            _form
			 * @param {}
			 *            _action
			 */
			onSuccess : function(_form, _action) {
				if (_action.result.success == true) {
					// 调用当前组建的父容器的onCloseWinClick()事件
					this.ownerCt.onCloseWinClick();
					/**
					 * _urgp 是 smsfactory.whitelist.white_list.jsp
					 * 中WhiteListPanel类的实例
					 */
					_urgp.getStore().reload();
				}
			},

			/**
			 * 请求失败的回调方法
			 * 
			 * @param {}
			 *            _form
			 * @param {}
			 *            _action
			 */
			onFailure : function(_form, _action) {
				Ext.Msg.alert("系统消息", _action.result["errorMsg"]);
			},

			/**
			 * 获取form的值
			 * 
			 * @return {}
			 */
			getFormValues : function() {
				return new Ext.data.Record(this.getForm().getValues());
			},

			/**
			 * 给表单设置值
			 * 
			 * @param {}
			 *            _record
			 */
			setFormValues : function(_record) {
				this.getForm().loadRecord(_record);
			},

			/**
			 * 重置表单
			 */
			reset : function() {
				this.getForm().reset();
			}
		});